package br.com.dallasmotopecas.seguranca.principal;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import br.com.dallasmotopecas.util.exception.DirecionamentoPaginaException;
import br.com.dallasmotopecas.util.managerbean.AbstractManagerBean;

@ManagedBean(name="segurancaManagerBean")
@RequestScoped
public class SegurancaManagerBean extends AbstractManagerBean implements Serializable
{
	private static final long serialVersionUID = 1L;
	private static final int ACESSO_SUBMODULO_PERFIL = 1;
	private static final int ACESSO_SUBMODULO_USUARIO = 2;
	private static final int ACESSO_SUBMODULO_PROCESSAMENTO = 3;
	private static final int ACESSO_SUBMODULO_PROCESSAMENTO_DADOS = 4;
	private static final int SAIR_MODULO_SEGURANCA = 20;
	
	public SegurancaManagerBean()
	{
		
	}
	
	@PostConstruct
	private void inicializar()
	{
		try
		{
			if (!isUsuarioLogado())
			{
				redirecionarPagina("/Index.jsf");
				return;
			}
			processaPermissaoUsuario(getUsuarioLogado());
		}
		catch(DirecionamentoPaginaException e)
		{
			processarMensagem(MENSAGEM_FATAL, e.getMessage());
		}
	}

	public void processaMenuSeguranca(int acao)
	{
		try
		{
			switch(acao)
			{
				case ACESSO_SUBMODULO_PERFIL:
				{
					redirecionarPagina("/view/seguranca/perfil/ManagerPerfil.jsf");
					break;
				}
				case ACESSO_SUBMODULO_USUARIO:
				{
					redirecionarPagina("/view/seguranca/usuario/ManagerUsuario.jsf");
					break;
				}
				case ACESSO_SUBMODULO_PROCESSAMENTO:
				{
					redirecionarPagina("/view/seguranca/processamento/ManagerProcessamento.jsf");
					break;
				}
				case ACESSO_SUBMODULO_PROCESSAMENTO_DADOS:
				{
					redirecionarPagina("/view/seguranca/processamento/ProcessamentoDados.jsf");
					break;
				}
				case SAIR_MODULO_SEGURANCA:
				{
					redirecionarPagina("/view/Principal.jsf");
					break;
				}
				default:
				{	
					redirecionarPagina("/view/Principal.jsf");
					break;
				}
			}
		}
		catch(DirecionamentoPaginaException e)
		{
			e.printStackTrace();
			processarMensagem(MENSAGEM_FATAL, e.getMessage());
		}
	}
	
}
